package cl.foursoft.sirvicod.service;

import java.sql.Connection;

import cl.foursoft.sirvicod.dao.facade.FacadePersona;
import cl.foursoft.sirvicod.dao.facade.FacadeVisita;
import cl.foursoft.sirvicod.dao.implementacion.DBMannager;
import cl.foursoft.sirvicod.dao.transferObject.VisitaTO;
import cl.foursoft.sirvicod.util.UtilLog;

public class VisitaService {

	public int guardarVisita(VisitaTO visita){
		
		Connection c = DBMannager.getConnection();		
		FacadeVisita f = new FacadeVisita();
		FacadePersona fp = new FacadePersona();
		
		int resp = -1;
		
		try {
			
			if(fp.personaEstaBloqueada(visita.getPersonaTO().getRut(), c))
			{
				DBMannager.close(c, true);
				resp = -100;
				return resp;
			}
				
			if(!fp.existePersona(visita.getPersonaTO().getRut(), c))
				resp = fp.guardarPersona(visita.getPersonaTO(), c);
			else
				resp = fp.actualizarPersona(visita.getPersonaTO(), c);
			
			if(resp > 0)
				resp = f.guardarVisita(visita, c);
						
			boolean exito = (resp >= 0);
			
			DBMannager.close(c, exito);
			
			return resp;
		}
		catch (Exception ex) 
		{
			UtilLog.registrar(ex);
			DBMannager.closeOnError(c);
			return resp;
		}
	}
}
